package com.zc.timedown.domain;

import com.zc.common.annotation.Excel;
import com.zc.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 今日目标对象 today_goal
 * 
 * @author zc
 * @date 2025-09-29
 */
public class TodayGoal extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 目标名称（如：背单词50个） */
    @Excel(name = "目标名称", readConverterExp = "如=：背单词50个")
    private String name;

    /** 目标描述（详细说明） */
    @Excel(name = "目标描述", readConverterExp = "详=细说明")
    private String description;

    /** 分类标签（如：学习/健康/娱乐） */
    @Excel(name = "分类标签", readConverterExp = "如=：学习/健康/娱乐")
    private String category;

    /** 图标（可以是emoji或前端图标class） */
    @Excel(name = "图标", readConverterExp = "可=以是emoji或前端图标class")
    private String icon;

    /** 图片序号（对应预设背景图编号，从0开始） */
    @Excel(name = "图片序号", readConverterExp = "对=应预设背景图编号，从0开始")
    private Integer imageIndex;

    /** 是否启用（0=停用，1=启用） */
    @Excel(name = "是否启用", readConverterExp = "0==停用，1=启用")
    private Integer isEnabled;

    /** 排序权重（越大越靠前） */
    @Excel(name = "排序权重", readConverterExp = "越=大越靠前")
    private Integer sortOrder;

    private String typeName;

    /** 所属用户ID */
    @Excel(name = "所属用户ID")
    private Long userId;

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setCategory(String category) 
    {
        this.category = category;
    }

    public String getCategory() 
    {
        return category;
    }

    public void setIcon(String icon) 
    {
        this.icon = icon;
    }

    public String getIcon() 
    {
        return icon;
    }

    public void setImageIndex(Integer imageIndex)
    {
        this.imageIndex = imageIndex;
    }

    public Integer getImageIndex()
    {
        return imageIndex;
    }

    public void setIsEnabled(Integer isEnabled)
    {
        this.isEnabled = isEnabled;
    }

    public Integer getIsEnabled()
    {
        return isEnabled;
    }

    public void setSortOrder(Integer sortOrder)
    {
        this.sortOrder = sortOrder;
    }

    public Integer getSortOrder()
    {
        return sortOrder;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("name", getName())
            .append("description", getDescription())
            .append("category", getCategory())
            .append("icon", getIcon())
            .append("imageIndex", getImageIndex())
            .append("isEnabled", getIsEnabled())
            .append("sortOrder", getSortOrder())
            .append("userId", getUserId())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
